1. Field of the Invention
The invention is related to video decoding techniques. In particular, the invention relates to systems and methods of decoding video code to reduce error propagation in the presence of transmission errors.
2. Description of the Related Art
A variety of digital video compression techniques have arisen to transmit or to store a video signal with a lower bandwidth or with less storage space. Such video compression techniques include international standards, such as H.261, H.263, H.263+, H.263++, H.26L, MPEG-1, MPEG-2, MPEG-4, and MPEG-7. These compression techniques achieve relatively high compression ratios by discrete cosine transform (DCT) techniques and motion compensation (MC) techniques, among others. Such video compression techniques permit video bitstreams to be efficiently carried across a variety of digital networks, such as wireless cellular telephony networks, computer networks, cable networks, via satellite, and the like.
Unfortunately for users, the various mediums used to carry or transmit digital video signals do not always work perfectly, and the transmitted data can be corrupted or otherwise interrupted. Such corruption can include errors, dropouts, and delays. Corruption occurs with relative frequency in some transmission mediums, such as in wireless channels and in asynchronous transfer mode (ATM) networks. For example, data transmission in a wireless channel can be corrupted by environmental noise, multipath, and shadowing. In another example, data transmission in an ATM network can be corrupted by network congestion and buffer overflow.
Corruption in a data stream or bitstream that is carrying video can cause disruptions to the displayed video. Even the loss of one bit of data can result in a loss of synchronization with the bitstream, which results in the unavailability of subsequent bits until a synchronization codeword is received. These errors in transmission can cause frames to be missed, blocks within a frame to be missed, and the like. One drawback to a relatively highly compressed data stream is an increased susceptibility to corruption in the transmission of the data stream carrying the video signal.
Those in the art have sought to develop techniques to mitigate against the corruption of data in the bitstream. For example, error concealment techniques can be used in an attempt to hide errors in missing or corrupted blocks. However, error concealment does not work well where the corrupted block is not similar in appearance to adjacent blocks. In another example, forward error correction (FEC) techniques are used to recover corrupted bits, and thus reconstruct data in the event of corruption. However, FEC techniques disadvantageously introduce redundant data, which increases the bandwidth of the bitstream for the video or decreases the amount of effective bandwidth remaining for the video. Also, FEC techniques are computationally complex to implement. In addition, conventional FEC techniques are not compatible with the international standards, such as H.261, H.263, MPEG-2, and MPEG-4, but instead, have to be implemented at a higher, “systems” level.
One approach to mitigate against corrupted data is to modify the syntax of the video coders to use a single motion vector with a lag value that indicates the frame number from which the motion is referenced, i.e., the motion vector depends on one of several previous frames. See Budagavi, M., et al., “Error Propagation in Motion Compensated Video over Wireless Channels,” Proc. ICIP '97, Vol. 2 (October 1997), pp. 89-92. Disadvantageously, only a single motion vector is transmitted, and there is no redundancy. Further disadvantageously, the lag value is not part of the international standards so that a video encoded with single motion vectors and lag values is not backwards compatible with a decoder that decodes motion vectors based on only the previous frame, such as decoders that are compatible with the international standards of H.261, H.263, MPEG-2, and MPEG-4.
Another approach to mitigate against corrupted data is to use double-vector motion compensation. Each block in a k-th frame, F.sub.k, is motion compensated from a weighted superposition of a motion vector from a block in a previous frame, F.sub.k−1, and a block from a frame that is previous to the previous frame, F.sub.k−2. When one of these two blocks is corrupted, the decoder suppresses its error propagation by predicting the block in the k-th frame, F.sub.k, from the remaining block that is not corrupted, either F.sub.k−1, or F.sub.k−2. See Kim, C.-S., et al., “Robust Transmission of Video Sequence Using Double-Vector Motion Compensation,” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 11, No. 9 (September 2001), pp. 1011-1021. However, the double-vector motion compensation technique is not backward compatible with existing international standards, such as H.261, H.263, MPEG-2, and MPEG-4.